Como fazer uma junção espacial

  • Usando a API para fazer a junção de dois arquivos de Lotes que não tem correspondência numérica

  • Inicialmente vamos ler os arquivos .SHP

[1]:
import os
import sys

#path para a biblioteca do apiModulo. Ajuste de acordo com a necessidade
sys.path.insert(0, os.path.abspath('../../..'))
from apiModulo.api import *

semfaz = lerArquivo('LOTES/LOTES_FINAIS_2.shp')
htl = lerArquivo('LOTES/SLM_LOTES_USO_DO_SOLO_2020_2021.shp')

print(f"Feições em SEMFAZ: {semfaz.shape[0]}")
print(f"Feições em HTL: {htl.shape[0]}")
Feições em SEMFAZ: 12871
Feições em HTL: 12290
  • Como não existe correspondência entre os dois arquivos, vamos calcular o centroide da geometria do arquivo HTL

    • Caso queira visualizar o resultado da conversão dos polígono em ponto, você pode usar: visMapaSemIndicador(dados=htl, coluna_geom=‘geometry’)

[2]:
htl['geometry'] = htl['geometry'].centroid
  • Com os centroides para uma coleção de geometria calculado, podemos obter a junção espacial entre eles

  • Para isso vamos usar o predicado = contains e a forma = inner

[4]:
novos_lotes = juncaoEspacial(semfaz, htl, tipo="inner", predicado='contains')
  • Para checar o resultado podemos:

    • imprimir as colunas e verificar que o resultado possui colunas dos dois arquivos originais

[5]:
novos_lotes.columns
[5]:
Index(['OBJECTID_1', 'SETOR', 'QUADRA', 'DISTRITO', 'SETOR_NOV', 'QDR_NPV',
       'GEOCODE', 'INS_ANT', 'AREA', 'Shape_Leng', 'de_observa', 'de_geocodi',
       'DE_USO', 'DE_TIPOLOG', 'GEOCODE_SE', 'Shape_STAr', 'Shape_STLe',
       'PRIOR', 'NR', 'N_IMOVEL', 'FOTO', 'TIPO', 'TIPOLOGIA', 'INSCRICAO_',
       'LOGRADOURO', 'NUMERO_left', 'BAIRRO', 'TOMBAMENTO', 'ZONA_DE_IN',
       'NUMERO_CAR', 'DOMINIO', 'PROPRIEDAD', 'CONDENACAO', 'NUMERO_DO_',
       'DIVIDA_DE_', 'NUMERO_DO1', 'SITUACAO', 'STATUS_OCU', 'STATUS_SIT',
       'USO_left', 'ESTADO_DE_', 'OBSERVACAO', 'OBSERVAC_1', 'PROJETO',
       'ETAPA', 'OBRA', 'USO1', 'ENTE', 'OBSERVAC_2', 'PRIORIDADE',
       'GEOCODE_1', 'DIVIDA', 'NR_1', 'VIS_1', 'CONJ', 'CONJ_PREF',
       'USO_POTENC', 'USO_PROPOS', 'OBSERV', 'geometry', 'index_right',
       'ID_JOIN3', 'COD_LOT', 'GABARITO', 'USO_right', 'TIPOLOGIAS', 'CONSERV',
       'OCIOSIDA', 'VOCACAO', 'NUMERO_right', 'TP_COLETA', 'ESTILO',
       'GOOGLE_ANO', 'AREA_M2', 'ID_PA', 'PAISAGEM_C', 'UN_PAISAGE',
       'check_in', 'HA_LOT'],
      dtype='object')
  • Podemos ainda escolher uma dessas colunas para visualizar.

    • nesse exemplo, escolhemos CONSERV

[6]:
visMapaGJson(novos_lotes,
                    variavel='CONSERV',
                    descricao='Uso',
                    height='800',
                    width='90%')
[6]:
Uso
Make this Notebook Trusted to load map: File -> Trust Notebook
  • Caso queira salvar o resultado, escolha:

    • salvar em arquivo: salvar(novos_lotes, ‘novos_lotes.shp’)

    • salvar na base como uma nova análise:

inserirCamada(
    dado = novos_lotes,
    tabela= novos_lotes,
    #campo_chave='OBJECTID_1',
    nome='novos_lotes',
    descricao='Camada de análise de lotes'
)